作者:laoshu仔 | 来源:互联网 | 2023-09-18 16:47
篇首语:本文由编程笔记#小编为大家整理,主要介绍了RabbitMQ入门 -- 阿里云服务器安装RabbitMQ相关的知识,希望对你有一定的参考价值。
📢📢📢📣📣📣
哈喽!大家好,我是【Bug 终结者】 ,【CSDNJava领域优质创作者】🏆,阿里云专家博主🏆,51CTO人气博主🏆,InfoQ写作专家🏆
一位上进心十足,拥有极强学习力的【Java领域博主】😜😜😜
🏅【Bug 终结者】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。 偶尔会分享些前端基础知识,会更新实战项目,面向企业级开发应用!
🏅 如果有对【后端技术】、【前端领域】感兴趣的【小可爱】,欢迎关注【Bug 终结者】💞💞💞
❤️❤️❤️ 感谢各位大可爱小可爱! ❤️❤️❤️
文章目录
- 一、什么是MQ?
- 二、什么是RabbitMQ?
- 三、使用RabbitMQ的好处
- 四、Linux环境下手动安装RabbitMQ
- 🚡环境准备
- ♻️安装并启动RabbitMQ
- 五、手动安装RabbitMQWeb管理界面和授权
- ⌛安装并启动RabbitMQ管理插件
- 😃添加账户
- ✳️再次测试访问
- 六、Linux环境下Docker安装RabbitMQ
- ⌛安装Docker
- 🗳️配置阿里云加速镜像
- ♨️安装并启动RabbitMQ
- ❇️测试RabbitMQ
- ⛵小结
一、什么是MQ?
消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。
其主要用途:不同进程Process/线程Thread之间通信。
队列是一种先进先出的结构:FIFO
把要传输的数据放在队列中。
把数据放到消息队列叫生产者
从消息队列取出消息叫做消费者
二、什么是RabbitMQ?
RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。
RabbitMQ的特性
- 可伸缩性:集群服务
- 消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存
三、使用RabbitMQ的好处
☁️解耦
系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!
系统A可以生成一个id,然后系统B需要这个id,系统A去调用了系统B
过了段时间,系统C说也要系统A的id,那么这时接触系统B的引用,去讲id传给系统C
这时又来了系统D,系统D也要系统A的id,系统A又解除了系统C,去调用了系统D,反反复复,很麻烦
系统A的负责人觉得改来改去太麻烦了,没意思,跑路了。
过段时间,公司来了位大佬,大佬说将系统A的id,存入消息队列,谁需要谁去拿,这样系统A就不用来回改动了,完美解决了参数调用问题!
系统A不关心谁去调用id,只负责生产数据并存入消息队列,其它系统即使挂了或请求超时,也跟系统A没有任何关系
这样就实现了系统A、B、C、D之间的解耦!
⛄异步
再来看看这种情况,系统A还是直接调用系统B、C、D
系统A:主要业务
系统B:短信业务
系统C:邮箱业务
系统D:处理后续业务
系统A下单成功后会去调用系统B,但是如果一个一个的调用,会大大的降低效率,假设每个业务执行时间100ms,那么4个业务执行完毕就是400ms,这种就被称为阻塞执行
那么我们的消息队列采用了异步机制,当我们下单完成后,会去异步的调用其它业务,会极大的降低系统的执行时间,提升效率!
⚡削峰/限流
例如:双十一大促销,这时的流量是很大很大的,并发很高,比如每秒5000个请求,假设现在又3台机器处理,并且每台机器每秒只能处理1500次请求,那么多出来的请求500请求,会将系统搞垮的,这时我们可以将多出来的请求放入消息队列中
这样即使每秒有10000个请求,也不会将系统搞垮,会在消息队列中等待,由系统去分配请求处理
四、Linux环境下手动安装RabbitMQ
🚡环境准备
阿里云Centos7.6服务器
lsb_release -a
在2022年5月,RabbitMQ官方发布推文宣称最新的版本已经不支持Centos7.x系列,但是我们可以通过下载之前支持的版本来部署!
下载RabbitMQ RPM包
RabbitMQ下载
下载成功如下
下载ErLang RPM包
这里需要注意,下载的版本要和RabbitMQ对应,必须支持下载的ErLang版本
我们找到下载的是 3.8.13 ,支持的最低是 22.3 最高是 23.x
下载ErLange
点击Download下载或单机wget复制下在Linux下 下载
使用FileZilla上传至阿里云服务器
阿里云服务器在 /usr/local 下新建 rabbitmq 文件夹
上传完成
安装ErLang
rpm -Uvh erlang-23.2.7-2.el7.x86_64.rpm
yum install -y erlang
查看erlang版本
erl -v
♻️安装并启动RabbitMQ
在安装RabbitMQ之前要安装一个插件
yum install -y socat
解压并安装RabbitMQ
rpm -Uvh rabbitmq-server-3.8.13-1.el8.noarch.rpm
yum install -y rabbitmq-server
启动RabbitMQ服务
systemctl start rabbitmq-server
systemctl status rabbitmq-server
systemctl restart rabbitmq-server
systemctl stop rabbitmq-server
可以看到,启动成功!
五、手动安装RabbitMQWeb管理界面和授权
⌛安装并启动RabbitMQ管理插件
rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server
启动成功,默认Web页面占用端口为 15672,我们去阿里云服务器控制台开放此端口
测试访问
浏览器输入 http://您的ip地址:15672
出现如下界面
默认登录账号密码 guest guest 登录测试
这个意思是我们只能通过本地来登录guest 账户
下面给出解决方案
😃添加账户
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
✳️再次测试访问
访问成功,手动安装成功!
六、Linux环境下Docker安装RabbitMQ
⌛安装Docker
先查看本机是否存在Docker,删除旧版本Docker
查看docker 版本
docker version
没有docker,我们执行以下命令,删除残余文件
yum remove docker \\
docker-client \\
docker-client-latest \\
docker-common \\
docker-latest \\
docker-latest-logrotate \\
docker-logrotate \\
docker-engine
进入Linux根目录,安装Docker
yum install -y yum-utils
yum-config-manager \\
--add-repo \\
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker 最新引擎
yum install docker-ce docker-ce-cli containerd.io
输入y确认即可!
🗳️配置阿里云加速镜像
打开阿里云控制台,弹性计算 --> 容器与镜像服务
打开之后选择 镜像工具 --> 镜像加速器,复制内容即可
进入Linux服务器根据步骤配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-&#39;EOF&#39;
"registry-mirrors": ["https://pfjide5p.mirror.aliyuncs.com"]
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
新建文件夹
配置内容&#xff0c;并重启服务
根据步骤一步步创建即可&#xff01;
♨️安装并启动RabbitMQ
docker pull rabbitmq:management
docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER&#61;admin -e RABBITMQ_DEFAULT_PASS&#61;admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
❇️测试RabbitMQ
浏览器输入 http://您的ip地址:15672 并输入admin admin
出现如下界面
至此&#xff0c;在Docker内安装RabbitMQ完成&#xff01;
⛵小结
以上就是【Bug 终结者】对RabbitMQ入门 – 阿里云服务器安装RabbitMQ简单的概述&#xff0c;RabbitMQ是很常用的中间件&#xff0c;使用它&#xff0c;可提高程序的性能&#xff0c;底层使用通道&#xff0c;多路复用等&#xff0c;完美的利用CPU完成任务&#xff0c;RabbitMQ可承受高并发&#xff0c;拥有高性能&#xff0c;可谓是开发利器&#xff01;
如果这篇【文章】有帮助到你&#xff0c;希望可以给【Bug 终结者】点个赞&#x1f44d;&#xff0c;创作不易&#xff0c;如果有对【后端技术】、【前端领域】感兴趣的小可爱&#xff0c;也欢迎关注❤️❤️❤️ 【Bug 终结者】❤️❤️❤️&#xff0c;我将会给你带来巨大的【收获与惊喜】&#x1f49d;&#x1f49d;&#x1f49d;&#xff01;